Tato otázka již má odpovědi zde: Jak mohu vrátit odpověď z asynchronního volání? (42 odpovědí) Uzavřeno před 5 měsíci. Takže při spuštění následujícího kódu není definována odpověď console.log (ba) Ale když to zkusím v konzole Chrome V8, dostanu správný výstup, který očekávám. Nejsem si úplně jistý, co se tu děje. nechť ba; funkce Setqa () { (async () => { čekají na načtení ('questions.json') .then (res => res.json ()) .then (async (data) => { ba = čekat na data; }); }) (); } Setqa (); console.log (ba); Obsah souboru json je následující: "questions": [{ "questionType": "multiple", "question": "Jaké je počasí", "answer": "", "otázka odpověď": "" }, { "questionType": "multiple", "question": "Jak se dnes máš?", "answer": " 1", "questionAnswer": "textPurpose1" } ]
2021-02-27 08:12:53
Myslím, že by to mělo fungovat nechť ba; funkce Setqa () { návrat načíst ('questions.json') .then (res => res.json ()) .then (async (data) => { ba = čekat na data; }); } Setqa (). Then (() => console.log (ba)); Ale lepší přístup by byl asynchronní funkce setQa () { const res = čekat na načtení ('questions.json'); vrátit res.json (); } ať ba = čeká setQa (); | Toto není odpověď, kterou hledáte? Přečtěte si další otázky týkající se značek javascript json fetch console.log nebo položte vlastní otázku.